Automatic generation of online media stations customized to individual users

ABSTRACT

An online media station can be automatically generated based on a user&#39;s media preference data. Media preference data can include a user&#39;s media item purchase history. The media preference data is analyzed and media preference clusters are generated from the analyzed media preference data. Generated media preference clusters are ranked based on a predetermined set of ranking rules. The top ranked media preference clusters are selected dependent upon the user&#39;s number of slots available for customized media stations. One or more media station seeds are selected from each media preference cluster selected based on a set of predetermined selection rules. An algorithmic media station is automatically generated from the one or more media station seeds and provided to an electronic device of the user.

TECHNICAL FIELD

The present disclosure relates to media stations and more specificallyto the automatic generation of media stations customized to individualusers.

BACKGROUND

Traditional media stations, such as online radio stations, are a musicstreaming and automated music recommendation service, typically providedvia an online web browser or computer application. Online media stationsare an increasingly popular medium for distributing music content overthe internet. Online media stations play musical selections of a certaingenre based on a user's artist selection. The user may provide positiveor negative feedback for songs chosen by the online media station, whichare taken into account when the online media station selects futuresongs. Other online media stations similar to the online media stationselected by the user are recommended to the user based on the musicalartist the user originally selected.

As online media stations become more popular a wider variety ofcustomers begin to engage with online media stations. Users can createonline media stations and have the best results when they are involvedin creating the online media station. However, not all customers aretechnically savvy enough to create their own online media station withsatisfactory results. Additionally, technically savvy customers may notbe willing to put in the initial time and effort into tuning theirstations during the early stage of usage. Accordingly, an improvedmethod of generating online media stations is needed.

SUMMARY

Additional features and advantages of the disclosure will be set forthin the description which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out in the appended claims. These and otherfeatures of the disclosure will become more fully apparent from thefollowing description and appended claims, or can be learned by thepractice of the principles set forth herein.

Disclosed are systems, methods, devices, and non-transitorycomputer-readable storage media for automatically generating onlinemedia stations. To automatically generate an online media station, auser's media preference data is analyzed to create media preferenceclusters. In some embodiments the media preference clusters can becreated using a clustering algorithm such as a k-means algorithm.

The media preference clusters are ranked according to a set ofpredetermined rules. In some embodiments the media preference clustersare ranked according to the characteristics of the media items containedwithin the clusters. In some embodiments the media preference clustersare ranked according to a user's interaction with the media itemscontained within the clusters. In other embodiments, the mediapreference clusters are ranked according to the characteristics of theclusters themselves.

The top ranked media preference clusters are selected for media stationgeneration depending on the user's number of slots available forcustomized media stations. Each media preference cluster selected isused to generate a corresponding media station.

A media station seed selection module selects one or more media stationseeds from each media preference cluster selected. The selected mediastation seed or seeds are used as inputs into a media station generationmodule. Using the media station seed or seeds as inputs, the mediastation generation module automatically generates an online mediastation customized for the user.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the disclosure can be obtained, a moreparticular description of the principles briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only exemplary embodiments of the disclosure and are nottherefore to be considered to be limiting of its scope, the principlesherein are described and explained with additional specificity anddetail through the use of the accompanying drawings in which:

FIG. 1 illustrates a general purpose computing environment in whichmultiple computing devices can be configured to communicate with eachother to automatically generate media stations;

FIG. 2 illustrates ranking media preference clusters, selecting mediapreference clusters for media station generation, and selecting a mediastation seed or seeds from each media preference cluster selected;

FIG. 3 illustrates automatically generating online media stationscustomized for the user from the selected media station seed or seeds;

FIG. 4 illustrates an exemplary method embodiment of automaticallygenerating online media stations customized for the user; and

FIGS. 5A and 5B illustrate exemplary possible system embodiments.

DETAILED DESCRIPTION

Various embodiments of the disclosure are discussed in detail below.While specific implementations are discussed, it should be understoodthat this is done for illustration purposes only. A person skilled inthe relevant art will recognize that other components and configurationsmay be used without parting from the spirit and scope of the disclosure.

The disclosed technology addresses the need in the art for automaticallygenerating online media stations based on a user's media preferencedata. To automatically generate an online media station, a user's mediapreference data is analyzed to create media preference clusters. In someembodiments the media preference clusters can be created using aclustering algorithm such as a k-means algorithm.

The media preference clusters are ranked according to a set ofpredetermined ranking rules. In some embodiments, the media preferenceclusters are ranked according to the characteristics of the media itemscontained within the clusters. In some embodiments, the media preferenceclusters are ranked according to a user's interaction with the mediaitems contained within the clusters. In some embodiments, the mediapreference clusters are ranked according to the characteristics of theclusters themselves.

The top ranked media preference clusters are selected for media stationgeneration depending on the user's number of slots available forcustomized media stations. Each media preference cluster selected isused to generate a corresponding media station.

A media station seed selection module selects one or more media stationseeds from each media preference cluster selected. The selected mediastation seed or seeds are used as inputs into a media station generationmodule. Using the selected media station seed or seeds as inputs, themedia station generation module automatically generates online mediastations customized for the user.

FIG. 1 illustrates an exemplary system configuration 100 in whichmultiple computing devices can be configured to communicate with eachother to create and perform a media station on a client device. A mediastation can be a sequence of media items that can be played or executedby a media station player application on a client device. Somenon-limiting examples of media items can include songs, podcasts,television shows, movies, games, audiobooks, educational courses, and/orvideo. Other media items are also possible. A media station player canbe any application capable of media item playback, such as a componentof a webpage, a plug-in, a client-side application, etc.

In some embodiments, a media station can be a continuous sequence ofmedia items that are chosen by a media station creation algorithm, suchthat as one media item completes playback a next media item begins. Theplayback process of a continuous media item stream can continue until auser takes an action to terminate or temporarily delay the playback,such as quitting the media player application, switching to a differentmedia station, pausing playback, or skipping a media item. A mediastation can be homogeneous or heterogeneous. That is, a media stationcan be designed to playback media items all of the same media type or ofdifferent media types. For example, a homogeneous media station canplayback only audio media items or only video media items. In anotherexample, a heterogeneous media station can playback a mix of audio mediaitems and video media items. In some embodiments, the various mediaitems can be presented concurrently such that presentation of one mediaitem overlaps with presentation with a different media item.

A user can create a media station by selecting a media station seed orseeds from which to generate the media station. Some non-limitingexamples of media station seeds are songs, videos, artists, albums, agenre of music or film, actors, etc. The media station plays algorithmicselections of a certain genre based on the user's initial selection. Theuser then provides positive or negative feedback for media items chosenby the media station, which are taken into account when the mediastation selects future media items. Typically, a user experiences thebest results for media stations generated when the user provides his ownmedia station seed or seeds to generate the media station from.

In some instances, a user has not provided a media station seed or seedsto generate a media station from. The user may either be too busy totake the time to make a selection or may not be technically savvy enoughto create their own online media station with satisfactory results.Additionally, technically savvy customers may not be willing to put inthe initial time and effort into tuning their stations during the earlystage of usage.

To provide the benefits of a customized online media station to theuser, a customized online media station may be automatically generatedwithout requiring a user to select a media station seed or seeds. Byidentifying relationships between the media items in a users mediapreference data, clusters of media items may be created to reflectdifferent groups and genres among the media items. Some non-limitingexamples of media preference data are a user's purchase history ofmusic, a user's purchase history of applications, a user's purchasehistory of videos, songs and videos contained within a user's medialibrary, etc. The clusters of media items may be ranked to identify theclusters closest related to the user's media preference. The top rankedmedia preference clusters are selected for media station generationdepending on the user's number of slots available for customized mediastations. Each media preference cluster selected is used to generate acorresponding media station.

One or more media station seeds may be selected from each mediapreference cluster selected. The selected media station seed or seedsmay in turn be used as inputs to automatically generate online mediastations. The online media stations generated are automatically providedto the user without requiring the user to select a media station seed orseeds.

To accomplish this, the user's media item purchase history may beanalyzed to create media preference clusters. The media preferenceclusters created indicate a relationship between the media itemsanalyzed in the users purchase history. The media preference clusterscan be created using a clustering algorithm such as a k-means algorithm,etc.

The media preference clusters are ranked according to a set ofpredetermined rules to identify the clusters that are most closelyrelated to the user's media preference. In some embodiments, the mediapreference clusters are ranked according to the characteristics of themedia items contained within the clusters. In other embodiments, themedia preference clusters are ranked according to a user's interactionwith the media items contained within the clusters. In otherembodiments, the media preference clusters are ranked according to thecharacteristics of the clusters themselves.

For example, the media preference clusters may be ranked according tothe number of media items contained within the clusters. In someembodiments, the media preference clusters may be ranked according tothe clusters with the most recently played media items. In someembodiments, the media preference clusters may be ranked according tothe clusters with the most recently purchased media items. In someembodiments, media preference clusters may be ranked according tobillboard popularity of the artists within the cluster. Additionalpriority may be provided to media preference clusters that includeartists who are identified as heat seekers or artists that are alreadymembers of a preexisting editorial station. A heat seeker artist is anew and developing artist that has been identified or highlighted forsales. In some embodiments, the media preference clusters may be rankedaccording to the clusters with the most media items with high userratings.

The top ranked media preference clusters are selected for media stationgeneration depending on the user's number of slots available forcustomized media stations. Each media preference cluster selected isused to generate a corresponding media station.

A media station seed selection module selects one or more media stationseeds from each media preference cluster selected. The media stationseed or seeds selected are used as inputs into a media stationgeneration module. Using the media station seed or seeds as inputs, themedia station generation module automatically generates online mediastations customized for the user.

In some embodiments, user media item purchase data either is notavailable or does not exist for a given user. In this scenario,alternative inputs are analyzed to generate media preference clustersfor the user. For example, application purchase data of a given user maybe used as an alternative to user media item purchase history togenerate media preference clusters. In some embodiments, the songs in auser's media library could also be used to generate media preferenceclusters for the user. In other embodiments, media item play data andmedia item purchase data from users with matching gender, age range, andgeographical location are pooled and used to generate media preferenceclusters for the user.

A media station can also be configured to play or present invitationalcontent, such as advertisements, within the media stream. Aninvitational content item can include content found in a media item,such as a song or a video, but an invitational content item can alsoinclude targeted content and/or content designed to elicit a responsefrom a user. Therefore an invitational content item and a media item canbe distinct item types, each of which can be presented in a mediastation.

In some embodiments, the invitational content can be used as a source ofrevenue and/or to subsidize a media station so that the media items canbe provided to end users free of charge or for a reduced fee. Theinvitational content can be presented within a media station using avariety of techniques. In some cases, invitational content can bepresented to a user in a manner that prevents or blocks the playback ofa next media item or a next segment of a media item. For example, uponthe completion of the playback of a music item, but before beginningplayback of a new music item, an invitational content item can bepresented in the media stream. Invitational content can also bedisplayed in conjunction with a media item or media item representation.For example, an invitational content item can be presented in a bannerad displayed with a music album cover or during the playback of atelevision show.

Further, in some embodiments, the invitational content can include aninteractive segment that can be presented concurrently with one or moremedia items. The interactive segment can be configured such that a usercan interact with the invitational content without disrupting playbackof media items being presented concurrently. A user can thus interactwith various features and views of the interactive segment during theplayback of a media item without disrupting the media item. For example,in some embodiments, the interactive segment can be a rich mediaadvertisement that includes various views and screens which a user cannavigate through while listening to an audio media item.

A downside to presenting both invitational content and media items,either simultaneously or sequentially, when the invitational content isnot related to the media items is that a user may equate the media itemwith the invitational content. For example, a user may think that aninvitational content provider endorses a particular media item, or thata media item provider has authorized the use of the media item topromote an offering associated with the invitational content. Todecrease the potential for confusion, the media station can also includebumper content, which can be presented concurrently with the interactiveinvitational content, but just prior to resuming playback of a mediaitem.

A bumper content item can be an intermediary content item that is usedto transition from invitational content to a media item, therebycreating user awareness that the media item is not related to an item ofinvitational content that the user may also be experiencing. Forexample, a bumper content item can be an audio message such as “now backto the music” that is used to transition between invitational content toan audio media item. Thus a user that is interacting with theinteractive segment of an item of invitational content will be madeaware that the upcoming media item is not related to the item ofinvitational content, even though the user is experiencing bothconcurrently.

To facilitate providing a media station to be performed by a clientdevice, multiple computing devices can be connected to a communicationnetwork 110 and configured to communicate with each other through use ofthe communication network 110. The communication network 110 can be anytype of network, including a local area network (“LAN”), such as anintranet, a wide area network (“WAN”), such as the internet, or anycombination thereof. Further, the communication network 110 can be apublic network, a private network, or a combination thereof. Thecommunication network can also be implemented using any type or types ofphysical media, including wired communication paths and wirelesscommunication paths associated with one or more service providers.Additionally, the communication network 110 can be configured to supportthe transmission of messages formatted using a variety of protocols.

A computing device can be any type of general computing device capableof network communication with other computing devices. For example, thecomputing device can be a personal computing device such as a desktop orworkstation, a business server, or a portable computing device, such asa laptop, smart phone, or tablet personal computer. The computing devicecan include some or all of the features, components, and peripherals ofcomputing device 500 of FIG. 5A.

To facilitate communication with other computing devices, the computingdevice can also include a communication interface configured to receivea communication, such as a request, data, etc., from another computingdevice in network communication with the computing device and pass thecommunication along to an appropriate module running on the computingdevice. The communication interface can also be configured to send acommunication to another computing device in network communication withthe computing device.

As illustrated, a client device 105 can be configured to communicatewith a media station server 125 to perform a media station on the clientdevice 105. For example, a media player application 115 running on theclient device 105 can be configured to communicate with a media stationmodule 130 on the media station server 125 to request, receive andperform a media station. A media station player can be any applicationcapable of media item playback, such as a component of a webpage, aplug-in, a client-side application, etc.

The media station module 130 can be configured to create a media stationto be performed on a client device. For example, the media stationmodule 130 can be configured to assemble the media station by selectingmedia items, invitational content items and bumper items to be performedon the client device in a specified order. For example, the mediastation server 125 can include a media item database 135, a bumpercontent database 145 and an invitational content database 150, eachconfigured to store multiple media items, bumper content items, andinvitational content items respectively. The media station module 130can be configured to communicate with the databases to select mediaitems, bumper content items and invitational content to be performed aspart of the media station.

Although the media item database 135, bumper content database 145 andthe invitational content database 150 are illustrated separately, thisis just one possible embodiment and is not meant to be limiting. In someembodiments, the databases can be combined as one database or any otherpossible combination.

Alternatively, in some embodiments, the multiple databases can be hostedon separate computing devices and the media station module 130 can beconfigured to communicate with the various computing devices to assemblethe media station. For example, in some embodiments, the system caninclude an invitational content server 170 in network communication withthe media station server 125 and the media station module 130 can beconfigured to communicate with the invitational content server 170 torequest invitational content to be included in the media station. Insome embodiments, the invitational content server 170 can transmit theinvitational content to the media station server 125 where it can beassembled into the media station. In some embodiments, the invitationalcontent server 170 can transmit the invitational content directly to theclient device 105.

In some embodiments, the media station module 130 can be configured totransmit the assembled media station to the client device 105 where itcan be performed by the media player application 115. For example, themedia station module 130 can be in continuous communication with themedia player application 115 to transmit the media station to beperformed by the media player application 115.

In some embodiments, the media station module 130 can be configured totransmit the media station to the client device 105 in segments. Forexample, the media station module 130 can be configured to communicatewith the client device to transmit an assembled segment of the mediastation which can be stored on the client device 105 and performed bythe media player application 115. For example, the client device 105 caninclude a media station database 120 configured to store the receivedmedia station and the media player application 115 can be configured tocommunicate with the media station database 120 to retrieve the storedmedia station. In this type embodiment, the media station module 130 canbe configured to periodically update the client device 105 bytransmitting further assembled segments of the media station.

In some embodiments, the media station can be assembled at the clientdevice 105 rather than at the media station server 125. For example, themedia station module 130 can be running on the client device 105 and canbe configured to request media items, bumper content items andinvitational content from the media station server 125, or any othercomputing device. The received media items, bumper content items andinvitational content can be stored in the media station database 120 andthe media station module 130 can be configured to communicate with themedia station database 120 to retrieve the stored media items, bumpercontent items and invitational content to assemble the media station. Inthis type of embodiment, the media station module 130 running on theclient device 105 can be configured to periodically request furthermedia items, bumper content items and invitational content to bedelivered to the client device.

The media station module 130 can be configured to assemble the mediastation based upon media station assembly rules. The media stationassembly rules can dictate which media items, invitation content itemsand bumper content items should be selected for the media station aswell as the sequential order in which they should be presented by themedia player application 115.

In some embodiments, a media station customized to a user may be createdautomatically without requiring any user input of media station seeds.In some embodiments, the user's media item purchase history may beanalyzed to create media preference clusters. The media preferenceclusters are ranked according to a set of predetermined rules toidentify the clusters that are most closely related to the user's mediapreference. The top ranked media preference clusters are selected formedia station generation depending on the user's number of slotsavailable for customized media stations.

Each media preference cluster selected is used to generate acorresponding media station. Media station seed selection module 165selects one or more media station seeds from each media preferencecluster selected. The selected media station seed or seeds are used asinputs into media station generation module 155. Using the media stationseed or seeds as inputs, the media station generation module 155automatically generates online media stations customized for the user.The media station generation module 155 can be configured to create acustomized media station to be performed on a client device.

To accomplish this, media station server 125 can include clusteringmodule 175 configured to create media preference clusters from a user'smedia preference data. Media preference data can be any data thatindicates a user's media preferences, i.e. likes and/or dislikesregarding media items. Some non-limiting examples of media preferencedata are a users purchase history of music, a users purchase history ofapplications, a users purchase history of videos, songs and videoscontained within a users media library, positive or negative feedbackfor media items, media stations a user has created in the past, etc.

To create the media preference clusters, clustering module 175 can beconfigured to use media preference data gathered from the user. In someembodiments, media station server 125 can include media preferencedatabase 185, which is configured to store media preference datagathered from the user. Clustering module 175 can be configured tocreate the media preference clusters using any clustering method knownin the art. For example, in some embodiments, the media preferenceclusters can be created using a k-means algorithm. Clustering module 175can create the media preference clusters by using the media preferencedata as input in the k-means algorithm. For example, the mediapreference data gathered from the user can represent a unique data pointor observation, and clustering module 175 can use a k-means algorithm tocluster the various observations. The resulting clusters can be themedia preference clusters. In some embodiments, purchased media itemsare clustered in n-space using genre, mood, era, origin, and tempo usingmetadata with multiple possible dimensions for each of these categories.For example, in terms of the genre category, an analyzed song may bedetermined to be 70% rock, 20% hip hop and 10% country. This data formsa matrix in which songs are classified using any number of standardizedclustering algorithms.

In some embodiments, user media item purchase data either is notavailable or does not exist for a given user. In this scenario, mediapreference data includes alternative inputs which are analyzed togenerate media preference clusters for the user. For example,application purchase data of a given user may be used as an alternativeto user media item purchase history to generate media preferenceclusters. In some embodiments, the songs in a user's media library couldalso be used to generate media preference clusters for the user. Inother embodiments, media item play data and media item purchase datafrom users with matching gender, age range, and geographical locationare pooled and used to generate media preference clusters for the user.

FIG. 2 illustrates automatically generating media preference clustersfrom a users media preference data, ranking the media preferenceclusters, selecting the media preference clusters, and selecting one ormore media station seeds from each media preference cluster selected. Asshown, four media preference clusters 205, 210, 215, and 220 have beengenerated using clustering module 175 and the media preference database185. For the purposes of this illustration, media preference clustershave all been generated from the user's media preference dataspecifically, the user's purchase history.

The media preference clusters are ranked according to a set ofpredetermined ranking rules. In some embodiments the media preferenceclusters are ranked according to the characteristics of the media itemscontained within the clusters. In other embodiments the media preferenceclusters are ranked according to a users interaction with the mediaitems contained within the clusters. In other embodiments, the mediapreference clusters are ranked according to the characteristics of theclusters themselves.

For example, the media preference clusters may be ranked according tothe number of media items contained within the clusters. In someembodiments, the media preference clusters may be ranked according tothe clusters with the most recently played media items. In someembodiments, the media preference clusters may be ranked according tothe clusters with the most recently purchased media items. In someembodiments, media preference clusters may be ranked according tobillboard popularity of the artists within the cluster. Additionalpriority may be provided to media preference clusters that includeartists who are identified as heat seekers or artists that are alreadymembers of a preexisting editorial station. A heat seeker artist is anew and developing artist that has been identified or highlighted forsales. In some embodiments, the media preference clusters may be rankedaccording to the clusters with the most media items with high userratings.

The four media preference clusters 205, 210, 215 and 220 all includemedia items found within the users analyzed purchase history. In thisillustration, the generated media preference clusters each reflect aspecific genre of music, and the media items contained within theclusters have characteristics that lend themselves to the genre of musicof the cluster.

As illustrated by slot 1 225 and slot 2 230, two slots are available forthe user's custom stations. Media preference clusters 205 and 210 havebeen selected as the top ranked clusters and thus are placed in the twoavailable slots for the user's custom stations. Media preference cluster205 achieved the highest ranking by containing the highest number ofsongs among the four clusters. Media preference cluster 210 did notcontain as many songs as media preference cluster 205. However, althoughmedia preference cluster 210 is a smaller cluster in size compared tomedia preference cluster 205, media preference cluster 210 also achieveda high ranking because it contained the most songs which were recentlyplayed within a cluster. As such, media preference clusters 205 and 210are selected as the top ranked clusters from which media station seed orseeds 235 and 240 are selected from.

The media station seed or seeds 235 and 240 are selected from theircorresponding media preference clusters 205 and 210 respectively by aset of predetermined selection rules. Some non-limiting examples ofmedia station seeds are songs, videos, artists, albums, genres of musicor film, actors, etc. In some embodiments, the media selection rules candictate selecting a media station seed or seeds based on the number ofinstances of the media station seed in a media preference cluster. Forexample, a media station seed such as an artist can be selected based onthe number of media items authored by the artist that are in the mediapreference cluster. In some embodiments, the media selection rules candictate selecting a media station seed or seeds based on whether a mediastation seed has been designated as a heat seeker. For example, themedia selection rules can dictate that artists and/or songs designatedas a heat seeker be selected as a media station seed. In someembodiments, the media selection rules can dictate selecting a mediastation seed or seeds based on the popularity of a media item. Forexample, the media selection rules can dictate that artists and/or songsdesignated as billboard top 100 be selected as a media station seed. Inother instances, there may be some minimum threshold value of occurrencewithin a cluster that an artist must overcome to be considered as acandidate for selection as a media station seed.

In some embodiments, one or more media station seeds 235 and 240 may beselected to seed the media station generation module 155. In someinstances, selecting multiple media station seeds 235 and 240 providessuperior results in creating a customized media station. For example,selecting multiple artists as media station seeds that have a longdiscography record of music in multiple styles or genres providesuperior results because the multiple artists cause the customizedstation to hone in on the subset of music from the artist which the userprefers.

In some embodiments, only one media station seed 235 and 240 may beselected to seed the media station generation module 155. In someinstances, the generated media preference clusters may only yield onemedia station seed due to the amount of media preference data available.Although utilizing multiple media stations to seed the media stationgeneration module is the preferred approach, a media station may stillbe generated with only one media station seed.

FIG. 3 illustrates automatically providing a media station seed or seedsto the media station generator to automatically generate a customizedmedia station for a user. In some embodiments, a media station seed orseeds 305 are selected from generated media preference clusters 205,210, 215 and 220. Some non-limiting examples of media station seeds aresongs, videos, artists, albums, genres of music or film, actors, etc.

In some embodiments, multiple media station seeds are selected fromgenerated media preference clusters 205 and 210. Utilizing multipleseeds may provide superior media station generation results because themedia station generation module 155 can more accurately hone in on thesubset of the music from the artists which the user prefers.

As illustrated, the media station seed or seeds 305 are provided to themedia station generator 310 as inputs for automatically generating acustomized media station. In some embodiments the media stationgenerator 310 generates algorithmic media stations. The media stationgenerator can be configured to generate an algorithmic media stationbased on an algorithm that uses one or more media station seeds 305 asinput. For example, when provided with a media station seed such as anartist, the media station generation module can generate a media stationincluding media items authored by the seed artist as well as media itemsauthored by the artists determined to be similar or related to theprovided seed artist. Likewise, when provided with a media station seedsuch as a song, the media station generation module can generate a mediastation that includes the seed song as well as songs that are similar tothe provided seed song.

The media station generator 310, using the media station seed or seeds305 as inputs, automatically generates a customized media station forthe user. The customized media station 315 created can be performed on aclient device. The customized media station 315 created may be analgorithmic media station providing a sequence of media items that canbe played or executed by a media station player application on a clientdevice.

In some embodiments, an existing editorial station that has a similarprofile i.e. genre, mood, era, etc., to the cluster of songs used formedia station generation or the media station seeds used for mediastation generation may be substituted in place of a customizedalgorithmic media station.

FIG. 4 illustrates an exemplary method embodiment of automaticallygenerating an online media station for a user. As shown, the methodbegins at block 405 where a user's media preference data is analyzed.Some non-limiting examples of media preference data are a user'spurchase history of music, a user's purchase history of applications, auser's purchase history of videos, songs and videos contained within ausers media library, etc. In some embodiments, user media item purchasedata either is not available or does not exist for a given user. In thisscenario, alternative inputs are analyzed to generate media preferenceclusters for the user. For example, application purchase data of a givenuser may be used as an alternative to user media item purchase historyto generate media preference clusters. In some instances, the songs in auser's media library could also be used to generate media preferenceclusters for the user. In other embodiments, media item plays from userswith matching gender, age range, and geographical location are pooledand used to generate media preference clusters for the user.

Upon analyzing the user's media preference data, the method continues toblock 410 where media preference clusters are generated from the user'smedia preference data. To generate the media preference clusters,clustering module 175 can be configured to use media preference datagathered from the user. In some embodiments, media station server 125can include media preference database 185, which is configured to storemedia preference data gathered from the user. Clustering module 175 canbe configured to create the media preference clusters using anyclustering method known in the art. For example, in some embodiments,the media preference clusters can be created using a k-means algorithm.Clustering module 175 can create the media preference clusters by usingthe media preference data as input in the k-means algorithm. Forexample, the media preference data gathered from the user can representa unique data point or observation, and clustering module 175 can use ak-means algorithm to cluster the various observations. The resultingclusters can be the media preference clusters.

At block 415 the generated media preference clusters are rankedaccording to a set of predetermined ranking rules. In some embodimentsthe media preference clusters are ranked according to thecharacteristics of the media items contained within the clusters. Inother embodiments the media preference clusters are ranked according toa user's interaction with the media items contained within the clusters.In other embodiments, the media preference clusters are ranked accordingto the characteristics of the clusters themselves.

For example, the media preference clusters may be ranked according tothe number of media items contained within the clusters. In otherembodiments, the media items may be ranked according to the clusterswith the most recently played media items. In some embodiments, themedia preference clusters may be ranked according to the clusters withthe most recently purchased media items. In some embodiments, mediapreference clusters may be ranked according to how popular the artistsare within the cluster. Additional priority may be provided to artistswho are identified as heat seekers or artists that are already membersof a preexisting editorial station. A heat seeker artist is a new anddeveloping artist that has been identified or highlighted for sales.

Upon ranking the generated media preference clusters, the methodcontinues to block 420 where the top ranked media preference clustersare selected for media station generation depending on the user's numberof slots available for customized media stations. Each media preferencecluster selected is used to generate a corresponding media station.

Upon selecting the media preference clusters to generate a media stationfrom, the method continues to block 425 where one or more media stationseeds are selected from each media preference cluster selected. One ormore media station seeds 235 and 240 are selected from the each mediapreference cluster selected 205 and 210 by a set of predeterminedselection rules. Some non-limiting examples of media station seeds aresongs, videos, artists, albums, genres of music or film, actors, etc. Insome embodiments, the media selection rules can dictate selecting amedia station seed or seeds based on the number of instances of themedia station seed in a media preference cluster. For example, a mediastation seed such as an artist can be selected based on the number ofmedia items authored by the artist that are in the media preferencecluster. In some embodiments, the media selection rules can dictateselecting a media station seed or seeds based on whether a media stationseed has been designated as a heat seeker. For example, the mediaselection rules can dictate that artists and/or songs designated as aheat seeker be selected as a media station seed. In some embodiments,the media selection rules can dictate selecting a media station seed orseeds based on the popularity of a media item. For example, the mediaselection rules can dictate that artists and/or songs designated asbillboard top 100 be selected as a media station seed. In otherinstances, there may be some minimum threshold value of occurrencewithin a cluster that an artist must overcome to be considered as acandidate for selection as a media station seed.

In some embodiments, it can be possible to only utilize one mediastation seed.

After a media station seed or seeds are selected, at block 430 a mediastation is generated from the media station seed or seeds. In someembodiments the media station generator 310 generates algorithmic mediastations. The media station seed or seeds selected are used as inputsinto a media station generation module. Using the media station seed orseeds as inputs, the media station generation module automaticallygenerates an online media station customized for the user.

At block 435, the generated media station is provided to an electronicdevice of the user. The customized media station created may be analgorithmic media station providing a sequence of media items that canbe played or executed by a media station player application on a clientdevice.

FIG. 5A, and FIG. 5B illustrate exemplary possible system embodiments.The more appropriate embodiment will be apparent to those of ordinaryskill in the art when practicing the present technology. Persons ofordinary skill in the art will also readily appreciate that other systemembodiments are possible.

FIG. 5A illustrates a conventional system bus computing systemarchitecture 500 wherein the components of the system are in electricalcommunication with each other using a bus 505. Exemplary system 500includes a processing unit (CPU or processor) 510 and a system bus 505that couples various system components including the system memory 515,such as read only memory (ROM) 520 and random access memory (RAM) 525,to the processor 510. The system 500 can include a cache of high-speedmemory connected directly with, in close proximity to, or integrated aspart of the processor 510. The system 500 can copy data from the memory515 and/or the storage device 530 to the cache 512 for quick access bythe processor 510. In this way, the cache can provide a performanceboost that avoids processor 510 delays while waiting for data. These andother modules can control or be configured to control the processor 510to perform various actions. Other system memory 515 may be available foruse as well. The memory 515 can include multiple different types ofmemory with different performance characteristics. The processor 510 caninclude any general purpose processor and a hardware module or softwaremodule, such as module 1 532, module 2 534, and module 3 536 stored instorage device 530, configured to control the processor 510 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. The processor 510 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

To enable user interaction with the computing device 500, an inputdevice 545 can represent any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 535 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems can enable a user to provide multiple types of input tocommunicate with the computing device 500. The communications interface540 can generally govern and manage the user input and system output.There is no restriction on operating on any particular hardwarearrangement and therefore the basic features here may easily besubstituted for improved hardware or firmware arrangements as they aredeveloped.

Storage device 530 is a non-volatile memory and can be a hard disk orother types of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,random access memories (RAMs) 525, read only memory (ROM) 520, andhybrids thereof.

The storage device 530 can include software modules 532, 534, 536 forcontrolling the processor 510. Other hardware or software modules arecontemplated. The storage device 530 can be connected to the system bus505. In one aspect, a hardware module that performs a particularfunction can include the software component stored in acomputer-readable medium in connection with the necessary hardwarecomponents, such as the processor 510, bus 505, display 535, and soforth, to carry out the function.

FIG. 5B illustrates a computer system 550 having a chipset architecturethat can be used in executing the described method and generating anddisplaying a graphical user interface (GUI). Computer system 550 is anexample of computer hardware, software, and firmware that can be used toimplement the disclosed technology. System 550 can include a processor555, representative of any number of physically and/or logicallydistinct resources capable of executing software, firmware, and hardwareconfigured to perform identified computations. Processor 555 cancommunicate with a chipset 560 that can control input to and output fromprocessor 555. In this example, chipset 560 outputs information tooutput 565, such as a display, and can read and write information tostorage device 570, which can include magnetic media, and solid statemedia, for example. Chipset 560 can also read data from and write datato RAM 575. A bridge 580 for interfacing with a variety of userinterface components 585 can be provided for interfacing with chipset560. Such user interface components 585 can include a keyboard, amicrophone, touch detection and processing circuitry, a pointing device,such as a mouse, and so on. In general, inputs to system 550 can comefrom any of a variety of sources, machine generated and/or humangenerated.

Chipset 560 can also interface with one or more communication interfaces590 that can have different physical interfaces. Such communicationinterfaces can include interfaces for wired and wireless local areanetworks, for broadband wireless networks, as well as personal areanetworks. Some applications of the methods for generating, displaying,and using the GUI disclosed herein can include receiving ordereddatasets over the physical interface or be generated by the machineitself by processor 555 analyzing data stored in storage 570 or 575.Further, the machine can receive inputs from a user via user interfacecomponents 585 and execute appropriate functions, such as browsingfunctions by interpreting these inputs using processor 555.

It can be appreciated that exemplary systems 500 and 550 can have morethan one processor 510 or be part of a group or cluster of computingdevices networked together to provide greater processing capability.

For clarity of explanation, in some instances the present technology maybe presented as including individual functional blocks includingfunctional blocks comprising devices, device components, steps orroutines in a method embodied in software, or combinations of hardwareand software.

In some embodiments the computer-readable storage devices, mediums, andmemories can include a cable or wireless signal containing a bit streamand the like. However, when mentioned, non-transitory computer-readablestorage media expressly exclude media such as energy, carrier signals,electromagnetic waves, and signals per se.

Methods according to the above-described examples can be implementedusing computer-executable instructions that are stored or otherwiseavailable from computer readable media. Such instructions can comprise,for example, instructions and data which cause or otherwise configure ageneral purpose computer, special purpose computer, or special purposeprocessing device to perform a certain function or group of functions.Portions of computer resources used can be accessible over a network.The computer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, firmware, orsource code. Examples of computer-readable media that may be used tostore instructions, information used, and/or information created duringmethods according to described examples include magnetic or opticaldisks, flash memory, USB devices provided with non-volatile memory,networked storage devices, and so on.

Devices implementing methods according to these disclosures can comprisehardware, firmware and/or software, and can take any of a variety ofform factors. Typical examples of such form factors include laptops,smart phones, small form factor personal computers, personal digitalassistants, and so on. Functionality described herein also can beembodied in peripherals or add-in cards. Such functionality can also beimplemented on a circuit board among different chips or differentprocesses executing in a single device, by way of further example.

The instructions, media for conveying such instructions, computingresources for executing them, and other structures for supporting suchcomputing resources are means for providing the functions described inthese disclosures.

Although a variety of examples and other information was used to explainaspects within the scope of the appended claims, no limitation of theclaims should be implied based on particular features or arrangements insuch examples, as one of ordinary skill would be able to use theseexamples to derive a wide variety of implementations. Further andalthough some subject matter may have been described in languagespecific to examples of structural features and/or method steps, it isto be understood that the subject matter defined in the appended claimsis not necessarily limited to these described features or acts. Forexample, such functionality can be distributed differently or performedin components other than those identified herein. Rather, the describedfeatures and steps are disclosed as examples of components of systemsand methods within the scope of the appended claims.

We claim:
 1. A computer-implemented method for automatically generatinga customized media station on an electronic device comprising: analyzinga user's media preference data; generating media preference clustersfrom the analyzed media preference data; ranking the generated mediapreference clusters based on a set of predetermined ranking rules;selecting the top ranked media preference clusters dependent upon theuser's number of slots available for customized media stations;selecting one or more media station seeds from each media preferencecluster selected based on a set of predetermined selection rules;generating an algorithmic media station customized to the user from theone or more media station seeds from each media preference clusterselected; and providing the generated algorithmic media stationcustomized to the user to the electronic device of the user.
 2. Themethod of claim 1, wherein the set of predetermined ranking rulesdictate ranking the generated media preference clusters based on atleast one of a number of media items contained in the media preferenceclusters, a most recent play time of the media items in the mediapreference clusters, and user ratings assigned to media items in themedia preference clusters.
 3. The method of claim 1, wherein the set ofpredetermined selection rules dictate selecting media station seedsbased on at least one of a determined number of media items authored bya common artist that are within the media preference clusters, a minimumthreshold value of times an artist must appear within the mediapreference clusters, and top artists in the media preference clusters.4. The method of claim 1, wherein the media preference data comprises auser's media item purchase history.
 5. The method of claim 1, whereinanalyzing the user's media preference data further comprises: inferring,from demographic and geographic location of the user, a musicalpreference of the user.
 6. The method of claim 1, wherein the selectingone or more media station seeds further comprises: determining that afirst artist included in at least one of the selected media preferenceclusters is a heat seeker; and selecting the first artist as one of theone or more media station seeds.
 7. The method of claim 1, furthercomprising: providing a preexisting editorial station to the electronicdevice of a user, wherein one or more of the media station seedsselected is an artist of the editorial station.
 8. The method of claim1, wherein the predetermined selection rules dictate selection of theone or more media station seeds based on a determined popularity of theone or more media station seeds.
 9. An automatic media stationgeneration system comprising: a processor; and a computer-readablestorage medium having stored therein instructions which, when executedby the processor, cause the processor to perform operations comprising:analyze a user's media preference data; generate media preferenceclusters from the analyzed media preference data; rank the generatedmedia preference clusters based on a set of predetermined ranking rules;select the top ranked media preference clusters dependent upon theuser's number of slots available for customized media stations; selectone or more media station seeds from each media preference clusterselected based on a set of predetermined selection rules; generate analgorithmic media station customized to the user from the one or moremedia station seeds from each media preference cluster selected; andprovide the generated algorithmic media station customized to the userto the electronic device of the user.
 10. The system of claim 9, whereinthe set of predetermined ranking rules dictate ranking the generatedmedia preference clusters based on at least one of a number of mediaitems contained in the media preference clusters, a most recent playtime of the media items in the media preference clusters, and userratings assigned to media items in the media preference clusters. 11.The system of claim 9, wherein the set of predetermined selection rulesdictate selecting media station seeds based on at least one of adetermined number of media items authored by a common artist that arewithin the media preference clusters, a minimum threshold value of timesan artist must appear within the media preference clusters, and topartists in the media clusters.
 12. The system of claim 9, wherein themedia preference data comprises a user's media item purchase history.13. The system of claim 9, wherein analyzing the user's media preferencedata further comprises: inferring, from demographic and geographiclocation of the user, a musical preference of the user.
 14. The systemof claim 9, wherein the instructions further cause the processor to:determine that a first artist included in at least one of the selectedmedia preference clusters is a heat seeker; and select the first artistas one of the one or more media station seeds.
 15. The system of claim9, wherein the instructions further cause the processor to: provide apreexisting editorial station to the electronic device of a user whereinone or more of the media station seeds selected is an artist of theeditorial station.
 16. The system of claim 9, wherein the predeterminedselection rules dictate selection of the one or more media station seedsbased on a determined popularity of the one or more media station seeds.17. A non-transitory computer-readable storage medium having storedtherein instructions which, when executed by a processor, cause theprocessor to perform operations comprising: analyzing a user's mediapreference data; generating media preference clusters from the analyzedmedia preference data; ranking the generated media preference clustersbased on a set of predetermined ranking rules; selecting the top rankedmedia preference clusters dependent upon the user's number of slotsavailable for customized media stations; selecting one or more mediastation seeds from each media preference cluster selected based on a setof predetermined selection rules; generating an algorithmic mediastation customized to the user from the one or more media station seedsfrom each media preference cluster selected; and providing the generatedalgorithmic media station customized to the user to the electronicdevice of the user.
 18. The non-transitory computer-readable storagemedium of claim 17, wherein the set of predetermined ranking rulesdictate ranking the generated media preference clusters based on atleast one of a number of media items contained in the media preferenceclusters, a most recent play time of the media items in the mediapreference clusters, and user ratings assigned to media items in themedia preference clusters.
 19. The non-transitory computer-readablestorage medium of claim 17, wherein the set of predetermined selectionrules comprises selecting media station seeds based on at least one of adetermined number of media items authored by a common artist that arewithin the media preference clusters, a minimum threshold value of thenumber of times an artist must appear within the media preferenceclusters, and top artists in the media clusters.
 20. The non-transitorycomputer-readable storage medium of claim 17, wherein the mediapreference data comprises a user's media item purchase history.
 21. Thenon-transitory computer-readable storage medium of claim 17, whereinanalyzing the user's media preference data further comprises: inferring,from demographic and geographic location of the user, a musicalpreference of the user.
 22. The non-transitory computer-readable storagemedium of claim 17, wherein the instructions further cause the computingdevice to: determine that a first artist included in at least one of theselected media preference clusters is a heat seeker; and select thefirst artist as one of the one or more media station seeds.
 23. Thenon-transitory computer-readable storage medium of claim 17, wherein theinstructions further cause the computing device to: provide apreexisting editorial station to the electronic device of a user whereinone or more of the media station seeds selected is an artist of theeditorial station.
 24. The non-transitory computer-readable storagemedium of claim 17, wherein the predetermined selection rules dictateselection of the one or more media station seeds based on a determinedpopularity of the one or more media station seeds.